package com.serviportales.serviquality.dao;

import java.io.Serializable;

import org.hibernate.criterion.DetachedCriteria;
import org.hibernate.criterion.MatchMode;
import org.hibernate.criterion.Restrictions;
import org.springframework.stereotype.Repository;

import com.serviportales.serviportales.dao.GenericHibernateDAO;
import com.serviportales.serviquality.model.Plantilla;

@Repository
public class PlantillaDAO extends GenericHibernateDAO<Plantilla> {

	private static final long serialVersionUID = 1L;

	@Override
	public DetachedCriteria getBasicDetachedCriteria(Plantilla plantilla) {
		DetachedCriteria criteria = DetachedCriteria.forClass(Plantilla.class);
		if (plantilla.getCodigo() != null) {
			criteria.add(Restrictions.ilike("codigo", plantilla.getCodigo(), MatchMode.ANYWHERE));
		}
		if (plantilla.getNombre() != null) {
			criteria.add(Restrictions.ilike("nombre", plantilla.getNombre(), MatchMode.ANYWHERE));
		}
		if (plantilla.getDescripcion() != null) {
			criteria.add(Restrictions.ilike("descripcion", plantilla.getDescripcion(), MatchMode.ANYWHERE));
		}
		if (plantilla.getEstadoRegistro() != null && plantilla.getEstadoRegistro().getCodigo() != null) {
			criteria.add(Restrictions.eq("estadoRegistro.codigo", plantilla.getEstadoRegistro().getCodigo()));
		}
		return criteria;
	}

	public Plantilla selectByID(Serializable codigo) {
		return getHibernateTemplate().get(Plantilla.class, codigo);
	}
}
